Instant messaging (IM) provides a medium for communicating data between users in real-time over a network data processing system. Instant messaging is commonly used over the Internet. Instant messaging applications provide messages to users and monitor and report the status of users that have established each other as online contacts. This information is typically presented to a user in a window. Instant messaging applications are widely used for both business and personal communication. For example, instant messaging applications allow business users to view each other's availability and initiate a text conversation with colleagues or customers when a desired contact becomes available. With instant messaging becoming a prominent communication tool, the functionality and usability of instant messaging applications are particularly important.
Users of instant messaging applications often maintain multiple instant message conversations simultaneously. A conversation represents the communication between a local user and a remote user during an instant message session between the local user and the remote user. A local user maintains simultaneous conversations when the local user is concurrently involved in multiple messaging sessions, each with a different remote user. For example, a user maintains five instant message conversations when the user is concurrently involved in one-to-one messaging sessions with five remote users. Maintaining multiple conversations can often be cumbersome. In particular, tasks such as monitoring a user's conversations, switching among the conversations, and coordinating instant messaging windows with other application windows often become problematic.
For example, simultaneous conversations may be grouped in a window task bar. When a new message is received, the task bar may be highlighted. Users must click on the task bar, identify the conversation where the new message has been received (often with a highlighted icon or user name), and then navigate through the conversation windows serially in order to read new messages, to decide whether to respond, and to draft a response. These steps must be repeated for every conversation window in which a new message has been received. New messages often come in at the same time the user is reading and responding. Accordingly, a user must return to the task bar repeatedly, without an indication of the number of new messages within a conversation, who has sent the messages, or the importance or relevance of the incoming message to the user's ongoing work. Thus, the user is unable to efficiently manage the conversations.
In another example, automatic pop-up conversation windows are used to present new messages to the user. The messages are brought to the forefront of the user's desktop, often disrupting the user. The messages pop up without regard to the messages' importance and a user must use a pointing device, tabs, or an equivalent to minimize the window. Often the same window will pop up again as soon as it is minimized, because a user on the other end of the conversation has entered a new message in the window. Additionally, pop-up windows tend to capture inadvertent user input causing messages to be sent to the wrong person. Further, unwanted content (e.g., spam) is often presented to users in pop-up windows. As such, software directed to preventing unwanted content from being displayed to the user is commonly configured to block pop-up windows. Such software may block pop-conversation windows so that the user unknowingly fails to receive messages from other users.